import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';

import { PageNotFoundComponent } from './pages/shared/page-not-found/page-not-found.component';

import { LoginComponent } from './login/login.component';
import { ForgetComponent } from './forget/forget.component';
import { RegisterComponent } from './register/register.component';

// 定义路由
// 这里的路由数组appRoutes描述如何进行导航。把它传给RouterModule.forRoot方法并传给本模块的imports数组就可以配置路由器。
// 每个Route都会把一个URL的path映射到一个组件。 注意，path不能以斜杠（/）开头。
// 路由器使用先匹配者优先的策略来匹配路由。
// 有了这份配置，当本应用在浏览器中的URL变为/heroes时，路由器就会匹配到path为heroes的Route，
// 并在宿主视图中的RouterOutlet之后显示HeroListComponent组件。
const appRoutes: Routes = [
    {
        path: 'login',
        component: LoginComponent
    },
    {
        path: 'forget',
        component: ForgetComponent
    },
    {
        path: 'register',
        component: RegisterComponent
    },
    {
        path: '',
        redirectTo: 'login',
        pathMatch: 'full'
    },
    { path: '**', component: PageNotFoundComponent }
];

@NgModule({
    imports: [
        RouterModule.forRoot(
            appRoutes,
            // 可以看到在导航的生命周期中发生过哪些事件，会输出到浏览器的控制台。
        )
    ],
    exports: [RouterModule]
})
export class AppRoutingModule {}
